[INFO] cloning repository https://github.com/mattyg/simple-holochain
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mattyg/simple-holochain" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmattyg%2Fsimple-holochain", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmattyg%2Fsimple-holochain'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6f5b3ae3db2be9c012643f3b02e4850fc1d7a009
[INFO] testing mattyg/simple-holochain against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmattyg%2Fsimple-holochain" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mattyg/simple-holochain
[INFO] finished tweaking git repo https://github.com/mattyg/simple-holochain
[INFO] tweaked toml for git repo https://github.com/mattyg/simple-holochain written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mattyg/simple-holochain on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mattyg/simple-holochain already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3c8c8111a276d16ada0b7495a372a58956f0231d6b2c9443309a9a35fca3e8ad
[INFO] running `Command { std: "docker" "start" "-a" "3c8c8111a276d16ada0b7495a372a58956f0231d6b2c9443309a9a35fca3e8ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3c8c8111a276d16ada0b7495a372a58956f0231d6b2c9443309a9a35fca3e8ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3c8c8111a276d16ada0b7495a372a58956f0231d6b2c9443309a9a35fca3e8ad", kill_on_drop: false }`
[INFO] [stdout] 3c8c8111a276d16ada0b7495a372a58956f0231d6b2c9443309a9a35fca3e8ad
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8b7e4de3ea0528512f84e77dc239130bf10b1f2bd124a1fba6e570e7a5ce430d
[INFO] running `Command { std: "docker" "start" "-a" "8b7e4de3ea0528512f84e77dc239130bf10b1f2bd124a1fba6e570e7a5ce430d", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling constant_time_eq v0.3.1
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling cc v1.2.20
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]    Compiling rmp v0.8.14
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling rmp-serde v1.3.0
[INFO] [stderr]    Compiling simple-holochain v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `location_context`
[INFO] [stdout]    --> src/dht.rs:155:24
[INFO] [stdout]     |
[INFO] [stdout] 155 |     fn validate(&self, location_context: LocationContext) -> Validation {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location_context`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]    --> src/dht.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 |             LinkStateChange::Create(record) => {
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]    --> src/dht.rs:214:37
[INFO] [stdout]     |
[INFO] [stdout] 214 |             LinkStateChange::Delete(record) => {
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:258:54
[INFO] [stdout]     |
[INFO] [stdout] 258 |     fn get_action<T: Serialize, E: Serialize>(&self, hash: Hash) -> Option<Record<T, E>> {
[INFO] [stdout]     |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:262:53
[INFO] [stdout]     |
[INFO] [stdout] 262 |     fn get_entry<T: Serialize, E: Serialize>(&self, hash: Hash) -> Option<Record<T, E>> {
[INFO] [stdout]     |                                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/dht.rs:266:39
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn get_links<T: Serialize>(&self, base: Hash) -> Vec<Record<Link<T>, Empty>> {
[INFO] [stdout]     |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `link`
[INFO] [stdout]    --> src/dht.rs:270:41
[INFO] [stdout]     |
[INFO] [stdout] 270 |     fn create_link<T: Serialize>(&self, link: Link<T>) -> Record<Link<T>, Empty> {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_link`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:274:27
[INFO] [stdout]     |
[INFO] [stdout] 274 |     fn delete_link(&self, hash: Hash) -> Record<LinkDeleteData, Empty> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/dht.rs:278:48
[INFO] [stdout]     |
[INFO] [stdout] 278 |     fn create_crud_object<T: Serialize>(&self, entry: T) -> Record<Empty, CrudObject<T>> {
[INFO] [stdout]     |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:282:48
[INFO] [stdout]     |
[INFO] [stdout] 282 |     fn update_crud_object<T: Serialize>(&self, hash: Hash, entry: T) -> Record<Hash, CrudObject<T>> {
[INFO] [stdout]     |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/dht.rs:282:60
[INFO] [stdout]     |
[INFO] [stdout] 282 |     fn update_crud_object<T: Serialize>(&self, hash: Hash, entry: T) -> Record<Hash, CrudObject<T>> {
[INFO] [stdout]     |                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:286:48
[INFO] [stdout]     |
[INFO] [stdout] 286 |     fn delete_crud_object<T: Serialize>(&self, hash: Hash) -> Record<Hash, Empty> {
[INFO] [stdout]     |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent`
[INFO] [stdout]    --> src/dht.rs:290:33
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn open_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<SourceChainOpenData, Empty> {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dna`
[INFO] [stdout]    --> src/dht.rs:290:46
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn open_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<SourceChainOpenData, Empty> {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_dna`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proof`
[INFO] [stdout]    --> src/dht.rs:290:57
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn open_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<SourceChainOpenData, Empty> {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent`
[INFO] [stdout]    --> src/dht.rs:294:34
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn close_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<Empty, Empty> {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dna`
[INFO] [stdout]    --> src/dht.rs:294:47
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn close_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<Empty, Empty> {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_dna`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proof`
[INFO] [stdout]    --> src/dht.rs:294:58
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn close_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<Empty, Empty> {
[INFO] [stdout]     |                                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ActionMetadata` is never constructed
[INFO] [stdout]   --> src/dht.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ActionMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Action` is never constructed
[INFO] [stdout]   --> src/dht.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Action<T: Serialize> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `hash` is never used
[INFO] [stdout]   --> src/dht.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<T: Serialize> Action<T> {
[INFO] [stdout]    | ---------------------------- method in this implementation
[INFO] [stdout] 22 |     fn hash(&self) -> Hash {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Record` is never constructed
[INFO] [stdout]   --> src/dht.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Record<T: Serialize, E: Serialize> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Empty` is never constructed
[INFO] [stdout]   --> src/dht.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Empty;
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Link` is never constructed
[INFO] [stdout]   --> src/dht.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Link<T: Serialize> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LinkDeleteData` is never constructed
[INFO] [stdout]   --> src/dht.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct LinkDeleteData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CrudObject` is never constructed
[INFO] [stdout]   --> src/dht.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct CrudObject<T: Serialize>(T);
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CrudObjectData` is never constructed
[INFO] [stdout]   --> src/dht.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct CrudObjectData<T: Serialize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceChain` is never constructed
[INFO] [stdout]   --> src/dht.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct SourceChain;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceChainOpenData` is never constructed
[INFO] [stdout]   --> src/dht.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct SourceChainOpenData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LinkStateChange` is never used
[INFO] [stdout]   --> src/dht.rs:89:10
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub enum LinkStateChange<T: Serialize> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CrudObjectStateChange` is never used
[INFO] [stdout]   --> src/dht.rs:94:10
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub enum CrudObjectStateChange<T: Serialize> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SourceChainStateChange` is never used
[INFO] [stdout]    --> src/dht.rs:100:10
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub enum SourceChainStateChange {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Address` is never constructed
[INFO] [stdout]    --> src/dht.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct Address([u8; 4]);
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LocationContext` is never used
[INFO] [stdout]    --> src/dht.rs:120:10
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub enum LocationContext {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Location` is never constructed
[INFO] [stdout]    --> src/dht.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct Location {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Locate` is never used
[INFO] [stdout]    --> src/dht.rs:139:7
[INFO] [stdout]     |
[INFO] [stdout] 139 | trait Locate {
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Validation` is never used
[INFO] [stdout]    --> src/dht.rs:143:10
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub enum Validation {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SysValidate` is never used
[INFO] [stdout]    --> src/dht.rs:149:7
[INFO] [stdout]     |
[INFO] [stdout] 149 | trait SysValidate {
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AppValidate` is never used
[INFO] [stdout]    --> src/dht.rs:153:7
[INFO] [stdout]     |
[INFO] [stdout] 153 | trait AppValidate {
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LocateValidate` is never used
[INFO] [stdout]    --> src/dht.rs:160:7
[INFO] [stdout]     |
[INFO] [stdout] 160 | trait LocateValidate: Locate + SysValidate + AppValidate {}
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dht` is never constructed
[INFO] [stdout]    --> src/dht.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub struct Dht(HashMap<Location, Vec<Box<dyn LocateValidate>>>);
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DhtApi` is never used
[INFO] [stdout]    --> src/dht.rs:241:7
[INFO] [stdout]     |
[INFO] [stdout] 241 | trait DhtApi {
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.27s
[INFO] running `Command { std: "docker" "inspect" "8b7e4de3ea0528512f84e77dc239130bf10b1f2bd124a1fba6e570e7a5ce430d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8b7e4de3ea0528512f84e77dc239130bf10b1f2bd124a1fba6e570e7a5ce430d", kill_on_drop: false }`
[INFO] [stdout] 8b7e4de3ea0528512f84e77dc239130bf10b1f2bd124a1fba6e570e7a5ce430d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b49362899d705e19b9e3f7f9c381d8dec2fc58d795eceeba41eaee79890bcff0
[INFO] running `Command { std: "docker" "start" "-a" "b49362899d705e19b9e3f7f9c381d8dec2fc58d795eceeba41eaee79890bcff0", kill_on_drop: false }`
[INFO] [stdout] warning: unused variable: `location_context`
[INFO] [stdout]    --> src/dht.rs:155:24
[INFO] [stdout]     |
[INFO] [stdout] 155 |     fn validate(&self, location_context: LocationContext) -> Validation {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location_context`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]    --> src/dht.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 |             LinkStateChange::Create(record) => {
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]    --> src/dht.rs:214:37
[INFO] [stdout]     |
[INFO] [stdout] 214 |             LinkStateChange::Delete(record) => {
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:258:54
[INFO] [stdout]     |
[INFO] [stdout] 258 |     fn get_action<T: Serialize, E: Serialize>(&self, hash: Hash) -> Option<Record<T, E>> {
[INFO] [stdout]     |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:262:53
[INFO] [stdout]     |
[INFO] [stdout] 262 |     fn get_entry<T: Serialize, E: Serialize>(&self, hash: Hash) -> Option<Record<T, E>> {
[INFO] [stdout]     |                                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/dht.rs:266:39
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn get_links<T: Serialize>(&self, base: Hash) -> Vec<Record<Link<T>, Empty>> {
[INFO] [stdout]     |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `link`
[INFO] [stdout]    --> src/dht.rs:270:41
[INFO] [stdout]     |
[INFO] [stdout] 270 |     fn create_link<T: Serialize>(&self, link: Link<T>) -> Record<Link<T>, Empty> {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_link`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:274:27
[INFO] [stdout]     |
[INFO] [stdout] 274 |     fn delete_link(&self, hash: Hash) -> Record<LinkDeleteData, Empty> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/dht.rs:278:48
[INFO] [stdout]     |
[INFO] [stdout] 278 |     fn create_crud_object<T: Serialize>(&self, entry: T) -> Record<Empty, CrudObject<T>> {
[INFO] [stdout]     |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:282:48
[INFO] [stdout]     |
[INFO] [stdout] 282 |     fn update_crud_object<T: Serialize>(&self, hash: Hash, entry: T) -> Record<Hash, CrudObject<T>> {
[INFO] [stdout]     |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/dht.rs:282:60
[INFO] [stdout]     |
[INFO] [stdout] 282 |     fn update_crud_object<T: Serialize>(&self, hash: Hash, entry: T) -> Record<Hash, CrudObject<T>> {
[INFO] [stdout]     |                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:286:48
[INFO] [stdout]     |
[INFO] [stdout] 286 |     fn delete_crud_object<T: Serialize>(&self, hash: Hash) -> Record<Hash, Empty> {
[INFO] [stdout]     |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling simple-holochain v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `agent`
[INFO] [stdout]    --> src/dht.rs:290:33
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn open_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<SourceChainOpenData, Empty> {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dna`
[INFO] [stdout]    --> src/dht.rs:290:46
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn open_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<SourceChainOpenData, Empty> {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_dna`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proof`
[INFO] [stdout]    --> src/dht.rs:290:57
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn open_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<SourceChainOpenData, Empty> {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent`
[INFO] [stdout]    --> src/dht.rs:294:34
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn close_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<Empty, Empty> {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dna`
[INFO] [stdout]    --> src/dht.rs:294:47
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn close_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<Empty, Empty> {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_dna`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proof`
[INFO] [stdout]    --> src/dht.rs:294:58
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn close_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<Empty, Empty> {
[INFO] [stdout]     |                                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ActionMetadata` is never constructed
[INFO] [stdout]   --> src/dht.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ActionMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Action` is never constructed
[INFO] [stdout]   --> src/dht.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Action<T: Serialize> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `hash` is never used
[INFO] [stdout]   --> src/dht.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<T: Serialize> Action<T> {
[INFO] [stdout]    | ---------------------------- method in this implementation
[INFO] [stdout] 22 |     fn hash(&self) -> Hash {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Record` is never constructed
[INFO] [stdout]   --> src/dht.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Record<T: Serialize, E: Serialize> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Empty` is never constructed
[INFO] [stdout]   --> src/dht.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Empty;
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Link` is never constructed
[INFO] [stdout]   --> src/dht.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Link<T: Serialize> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LinkDeleteData` is never constructed
[INFO] [stdout]   --> src/dht.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct LinkDeleteData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CrudObject` is never constructed
[INFO] [stdout]   --> src/dht.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct CrudObject<T: Serialize>(T);
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CrudObjectData` is never constructed
[INFO] [stdout]   --> src/dht.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct CrudObjectData<T: Serialize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceChain` is never constructed
[INFO] [stdout]   --> src/dht.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct SourceChain;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceChainOpenData` is never constructed
[INFO] [stdout]   --> src/dht.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct SourceChainOpenData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LinkStateChange` is never used
[INFO] [stdout]   --> src/dht.rs:89:10
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub enum LinkStateChange<T: Serialize> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CrudObjectStateChange` is never used
[INFO] [stdout]   --> src/dht.rs:94:10
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub enum CrudObjectStateChange<T: Serialize> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SourceChainStateChange` is never used
[INFO] [stdout]    --> src/dht.rs:100:10
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub enum SourceChainStateChange {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Address` is never constructed
[INFO] [stdout]    --> src/dht.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct Address([u8; 4]);
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LocationContext` is never used
[INFO] [stdout]    --> src/dht.rs:120:10
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub enum LocationContext {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Location` is never constructed
[INFO] [stdout]    --> src/dht.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct Location {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Locate` is never used
[INFO] [stdout]    --> src/dht.rs:139:7
[INFO] [stdout]     |
[INFO] [stdout] 139 | trait Locate {
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Validation` is never used
[INFO] [stdout]    --> src/dht.rs:143:10
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub enum Validation {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SysValidate` is never used
[INFO] [stdout]    --> src/dht.rs:149:7
[INFO] [stdout]     |
[INFO] [stdout] 149 | trait SysValidate {
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AppValidate` is never used
[INFO] [stdout]    --> src/dht.rs:153:7
[INFO] [stdout]     |
[INFO] [stdout] 153 | trait AppValidate {
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LocateValidate` is never used
[INFO] [stdout]    --> src/dht.rs:160:7
[INFO] [stdout]     |
[INFO] [stdout] 160 | trait LocateValidate: Locate + SysValidate + AppValidate {}
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dht` is never constructed
[INFO] [stdout]    --> src/dht.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub struct Dht(HashMap<Location, Vec<Box<dyn LocateValidate>>>);
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DhtApi` is never used
[INFO] [stdout]    --> src/dht.rs:241:7
[INFO] [stdout]     |
[INFO] [stdout] 241 | trait DhtApi {
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `location_context`
[INFO] [stdout]    --> src/dht.rs:155:24
[INFO] [stdout]     |
[INFO] [stdout] 155 |     fn validate(&self, location_context: LocationContext) -> Validation {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location_context`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]    --> src/dht.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 |             LinkStateChange::Create(record) => {
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `record`
[INFO] [stdout]    --> src/dht.rs:214:37
[INFO] [stdout]     |
[INFO] [stdout] 214 |             LinkStateChange::Delete(record) => {
[INFO] [stdout]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:258:54
[INFO] [stdout]     |
[INFO] [stdout] 258 |     fn get_action<T: Serialize, E: Serialize>(&self, hash: Hash) -> Option<Record<T, E>> {
[INFO] [stdout]     |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:262:53
[INFO] [stdout]     |
[INFO] [stdout] 262 |     fn get_entry<T: Serialize, E: Serialize>(&self, hash: Hash) -> Option<Record<T, E>> {
[INFO] [stdout]     |                                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]    --> src/dht.rs:266:39
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn get_links<T: Serialize>(&self, base: Hash) -> Vec<Record<Link<T>, Empty>> {
[INFO] [stdout]     |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `link`
[INFO] [stdout]    --> src/dht.rs:270:41
[INFO] [stdout]     |
[INFO] [stdout] 270 |     fn create_link<T: Serialize>(&self, link: Link<T>) -> Record<Link<T>, Empty> {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_link`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:274:27
[INFO] [stdout]     |
[INFO] [stdout] 274 |     fn delete_link(&self, hash: Hash) -> Record<LinkDeleteData, Empty> {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/dht.rs:278:48
[INFO] [stdout]     |
[INFO] [stdout] 278 |     fn create_crud_object<T: Serialize>(&self, entry: T) -> Record<Empty, CrudObject<T>> {
[INFO] [stdout]     |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:282:48
[INFO] [stdout]     |
[INFO] [stdout] 282 |     fn update_crud_object<T: Serialize>(&self, hash: Hash, entry: T) -> Record<Hash, CrudObject<T>> {
[INFO] [stdout]     |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]    --> src/dht.rs:282:60
[INFO] [stdout]     |
[INFO] [stdout] 282 |     fn update_crud_object<T: Serialize>(&self, hash: Hash, entry: T) -> Record<Hash, CrudObject<T>> {
[INFO] [stdout]     |                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/dht.rs:286:48
[INFO] [stdout]     |
[INFO] [stdout] 286 |     fn delete_crud_object<T: Serialize>(&self, hash: Hash) -> Record<Hash, Empty> {
[INFO] [stdout]     |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent`
[INFO] [stdout]    --> src/dht.rs:290:33
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn open_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<SourceChainOpenData, Empty> {
[INFO] [stdout]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dna`
[INFO] [stdout]    --> src/dht.rs:290:46
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn open_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<SourceChainOpenData, Empty> {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_dna`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proof`
[INFO] [stdout]    --> src/dht.rs:290:57
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn open_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<SourceChainOpenData, Empty> {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `agent`
[INFO] [stdout]    --> src/dht.rs:294:34
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn close_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<Empty, Empty> {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dna`
[INFO] [stdout]    --> src/dht.rs:294:47
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn close_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<Empty, Empty> {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_dna`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proof`
[INFO] [stdout]    --> src/dht.rs:294:58
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn close_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<Empty, Empty> {
[INFO] [stdout]     |                                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ActionMetadata` is never constructed
[INFO] [stdout]   --> src/dht.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ActionMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Action` is never constructed
[INFO] [stdout]   --> src/dht.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Action<T: Serialize> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `hash` is never used
[INFO] [stdout]   --> src/dht.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<T: Serialize> Action<T> {
[INFO] [stdout]    | ---------------------------- method in this implementation
[INFO] [stdout] 22 |     fn hash(&self) -> Hash {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Record` is never constructed
[INFO] [stdout]   --> src/dht.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Record<T: Serialize, E: Serialize> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Empty` is never constructed
[INFO] [stdout]   --> src/dht.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Empty;
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Link` is never constructed
[INFO] [stdout]   --> src/dht.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Link<T: Serialize> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LinkDeleteData` is never constructed
[INFO] [stdout]   --> src/dht.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct LinkDeleteData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CrudObject` is never constructed
[INFO] [stdout]   --> src/dht.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct CrudObject<T: Serialize>(T);
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CrudObjectData` is never constructed
[INFO] [stdout]   --> src/dht.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct CrudObjectData<T: Serialize> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceChain` is never constructed
[INFO] [stdout]   --> src/dht.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct SourceChain;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceChainOpenData` is never constructed
[INFO] [stdout]   --> src/dht.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct SourceChainOpenData {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LinkStateChange` is never used
[INFO] [stdout]   --> src/dht.rs:89:10
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub enum LinkStateChange<T: Serialize> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CrudObjectStateChange` is never used
[INFO] [stdout]   --> src/dht.rs:94:10
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub enum CrudObjectStateChange<T: Serialize> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SourceChainStateChange` is never used
[INFO] [stdout]    --> src/dht.rs:100:10
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub enum SourceChainStateChange {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Address` is never constructed
[INFO] [stdout]    --> src/dht.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct Address([u8; 4]);
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LocationContext` is never used
[INFO] [stdout]    --> src/dht.rs:120:10
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub enum LocationContext {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Location` is never constructed
[INFO] [stdout]    --> src/dht.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct Location {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Locate` is never used
[INFO] [stdout]    --> src/dht.rs:139:7
[INFO] [stdout]     |
[INFO] [stdout] 139 | trait Locate {
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Validation` is never used
[INFO] [stdout]    --> src/dht.rs:143:10
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub enum Validation {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SysValidate` is never used
[INFO] [stdout]    --> src/dht.rs:149:7
[INFO] [stdout]     |
[INFO] [stdout] 149 | trait SysValidate {
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AppValidate` is never used
[INFO] [stdout]    --> src/dht.rs:153:7
[INFO] [stdout]     |
[INFO] [stdout] 153 | trait AppValidate {
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LocateValidate` is never used
[INFO] [stdout]    --> src/dht.rs:160:7
[INFO] [stdout]     |
[INFO] [stdout] 160 | trait LocateValidate: Locate + SysValidate + AppValidate {}
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dht` is never constructed
[INFO] [stdout]    --> src/dht.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub struct Dht(HashMap<Location, Vec<Box<dyn LocateValidate>>>);
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DhtApi` is never used
[INFO] [stdout]    --> src/dht.rs:241:7
[INFO] [stdout]     |
[INFO] [stdout] 241 | trait DhtApi {
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.47s
[INFO] running `Command { std: "docker" "inspect" "b49362899d705e19b9e3f7f9c381d8dec2fc58d795eceeba41eaee79890bcff0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b49362899d705e19b9e3f7f9c381d8dec2fc58d795eceeba41eaee79890bcff0", kill_on_drop: false }`
[INFO] [stdout] b49362899d705e19b9e3f7f9c381d8dec2fc58d795eceeba41eaee79890bcff0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d5668ae2a6e96b465bd1e9a6e2e8b5ff25fd9a85a1c05c08d3807d6afb0c0b9e
[INFO] running `Command { std: "docker" "start" "-a" "d5668ae2a6e96b465bd1e9a6e2e8b5ff25fd9a85a1c05c08d3807d6afb0c0b9e", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `location_context`
[INFO] [stderr]    --> src/dht.rs:155:24
[INFO] [stderr]     |
[INFO] [stderr] 155 |     fn validate(&self, location_context: LocationContext) -> Validation {
[INFO] [stderr]     |                        ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location_context`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `record`
[INFO] [stderr]    --> src/dht.rs:209:37
[INFO] [stderr]     |
[INFO] [stderr] 209 |             LinkStateChange::Create(record) => {
[INFO] [stderr]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `record`
[INFO] [stderr]    --> src/dht.rs:214:37
[INFO] [stderr]     |
[INFO] [stderr] 214 |             LinkStateChange::Delete(record) => {
[INFO] [stderr]     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_record`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hash`
[INFO] [stderr]    --> src/dht.rs:258:54
[INFO] [stderr]     |
[INFO] [stderr] 258 |     fn get_action<T: Serialize, E: Serialize>(&self, hash: Hash) -> Option<Record<T, E>> {
[INFO] [stderr]     |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hash`
[INFO] [stderr]    --> src/dht.rs:262:53
[INFO] [stderr]     |
[INFO] [stderr] 262 |     fn get_entry<T: Serialize, E: Serialize>(&self, hash: Hash) -> Option<Record<T, E>> {
[INFO] [stderr]     |                                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `base`
[INFO] [stderr]    --> src/dht.rs:266:39
[INFO] [stderr]     |
[INFO] [stderr] 266 |     fn get_links<T: Serialize>(&self, base: Hash) -> Vec<Record<Link<T>, Empty>> {
[INFO] [stderr]     |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `link`
[INFO] [stderr]    --> src/dht.rs:270:41
[INFO] [stderr]     |
[INFO] [stderr] 270 |     fn create_link<T: Serialize>(&self, link: Link<T>) -> Record<Link<T>, Empty> {
[INFO] [stderr]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_link`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hash`
[INFO] [stderr]    --> src/dht.rs:274:27
[INFO] [stderr]     |
[INFO] [stderr] 274 |     fn delete_link(&self, hash: Hash) -> Record<LinkDeleteData, Empty> {
[INFO] [stderr]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `entry`
[INFO] [stderr]    --> src/dht.rs:278:48
[INFO] [stderr]     |
[INFO] [stderr] 278 |     fn create_crud_object<T: Serialize>(&self, entry: T) -> Record<Empty, CrudObject<T>> {
[INFO] [stderr]     |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hash`
[INFO] [stderr]    --> src/dht.rs:282:48
[INFO] [stderr]     |
[INFO] [stderr] 282 |     fn update_crud_object<T: Serialize>(&self, hash: Hash, entry: T) -> Record<Hash, CrudObject<T>> {
[INFO] [stderr]     |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `entry`
[INFO] [stderr]    --> src/dht.rs:282:60
[INFO] [stderr]     |
[INFO] [stderr] 282 |     fn update_crud_object<T: Serialize>(&self, hash: Hash, entry: T) -> Record<Hash, CrudObject<T>> {
[INFO] [stderr]     |                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `hash`
[INFO] [stderr]    --> src/dht.rs:286:48
[INFO] [stderr]     |
[INFO] [stderr] 286 |     fn delete_crud_object<T: Serialize>(&self, hash: Hash) -> Record<Hash, Empty> {
[INFO] [stderr]     |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_hash`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `agent`
[INFO] [stderr]    --> src/dht.rs:290:33
[INFO] [stderr]     |
[INFO] [stderr] 290 |     fn open_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<SourceChainOpenData, Empty> {
[INFO] [stderr]     |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dna`
[INFO] [stderr]    --> src/dht.rs:290:46
[INFO] [stderr]     |
[INFO] [stderr] 290 |     fn open_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<SourceChainOpenData, Empty> {
[INFO] [stderr]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_dna`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `proof`
[INFO] [stderr]    --> src/dht.rs:290:57
[INFO] [stderr]     |
[INFO] [stderr] 290 |     fn open_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<SourceChainOpenData, Empty> {
[INFO] [stderr]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `agent`
[INFO] [stderr]    --> src/dht.rs:294:34
[INFO] [stderr]     |
[INFO] [stderr] 294 |     fn close_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<Empty, Empty> {
[INFO] [stderr]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_agent`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dna`
[INFO] [stderr]    --> src/dht.rs:294:47
[INFO] [stderr]     |
[INFO] [stderr] 294 |     fn close_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<Empty, Empty> {
[INFO] [stderr]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_dna`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `proof`
[INFO] [stderr]    --> src/dht.rs:294:58
[INFO] [stderr]     |
[INFO] [stderr] 294 |     fn close_chain_object(&self, agent: Hash, dna: Hash, proof: Vec<u8>) -> Record<Empty, Empty> {
[INFO] [stderr]     |                                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ActionMetadata` is never constructed
[INFO] [stderr]   --> src/dht.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct ActionMetadata {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Action` is never constructed
[INFO] [stderr]   --> src/dht.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub struct Action<T: Serialize> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `hash` is never used
[INFO] [stderr]   --> src/dht.rs:22:8
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl<T: Serialize> Action<T> {
[INFO] [stderr]    | ---------------------------- method in this implementation
[INFO] [stderr] 22 |     fn hash(&self) -> Hash {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Record` is never constructed
[INFO] [stderr]   --> src/dht.rs:30:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub struct Record<T: Serialize, E: Serialize> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Empty` is never constructed
[INFO] [stderr]   --> src/dht.rs:37:12
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub struct Empty;
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Link` is never constructed
[INFO] [stderr]   --> src/dht.rs:43:12
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub struct Link<T: Serialize> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LinkDeleteData` is never constructed
[INFO] [stderr]   --> src/dht.rs:53:12
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub struct LinkDeleteData {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CrudObject` is never constructed
[INFO] [stderr]   --> src/dht.rs:64:12
[INFO] [stderr]    |
[INFO] [stderr] 64 | pub struct CrudObject<T: Serialize>(T);
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CrudObjectData` is never constructed
[INFO] [stderr]   --> src/dht.rs:66:12
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub struct CrudObjectData<T: Serialize> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SourceChain` is never constructed
[INFO] [stderr]   --> src/dht.rs:76:12
[INFO] [stderr]    |
[INFO] [stderr] 76 | pub struct SourceChain;
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SourceChainOpenData` is never constructed
[INFO] [stderr]   --> src/dht.rs:79:12
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub struct SourceChainOpenData {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `LinkStateChange` is never used
[INFO] [stderr]   --> src/dht.rs:89:10
[INFO] [stderr]    |
[INFO] [stderr] 89 | pub enum LinkStateChange<T: Serialize> {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `CrudObjectStateChange` is never used
[INFO] [stderr]   --> src/dht.rs:94:10
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub enum CrudObjectStateChange<T: Serialize> {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `SourceChainStateChange` is never used
[INFO] [stderr]    --> src/dht.rs:100:10
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub enum SourceChainStateChange {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Address` is never constructed
[INFO] [stderr]    --> src/dht.rs:108:12
[INFO] [stderr]     |
[INFO] [stderr] 108 | pub struct Address([u8; 4]);
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `LocationContext` is never used
[INFO] [stderr]    --> src/dht.rs:120:10
[INFO] [stderr]     |
[INFO] [stderr] 120 | pub enum LocationContext {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Location` is never constructed
[INFO] [stderr]    --> src/dht.rs:134:12
[INFO] [stderr]     |
[INFO] [stderr] 134 | pub struct Location {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Locate` is never used
[INFO] [stderr]    --> src/dht.rs:139:7
[INFO] [stderr]     |
[INFO] [stderr] 139 | trait Locate {
[INFO] [stderr]     |       ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Validation` is never used
[INFO] [stderr]    --> src/dht.rs:143:10
[INFO] [stderr]     |
[INFO] [stderr] 143 | pub enum Validation {
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `SysValidate` is never used
[INFO] [stderr]    --> src/dht.rs:149:7
[INFO] [stderr]     |
[INFO] [stderr] 149 | trait SysValidate {
[INFO] [stderr]     |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `AppValidate` is never used
[INFO] [stderr]    --> src/dht.rs:153:7
[INFO] [stderr]     |
[INFO] [stderr] 153 | trait AppValidate {
[INFO] [stderr]     |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `LocateValidate` is never used
[INFO] [stderr]    --> src/dht.rs:160:7
[INFO] [stderr]     |
[INFO] [stderr] 160 | trait LocateValidate: Locate + SysValidate + AppValidate {}
[INFO] [stderr]     |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Dht` is never constructed
[INFO] [stderr]    --> src/dht.rs:165:12
[INFO] [stderr]     |
[INFO] [stderr] 165 | pub struct Dht(HashMap<Location, Vec<Box<dyn LocateValidate>>>);
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `DhtApi` is never used
[INFO] [stderr]    --> src/dht.rs:241:7
[INFO] [stderr]     |
[INFO] [stderr] 241 | trait DhtApi {
[INFO] [stderr]     |       ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `simple-holochain` (lib) generated 42 warnings (run `cargo fix --lib -p simple-holochain` to apply 18 suggestions)
[INFO] [stderr] warning: `simple-holochain` (lib test) generated 42 warnings (42 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/simple_holochain-9dde77c3b922e22c)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests simple_holochain
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d5668ae2a6e96b465bd1e9a6e2e8b5ff25fd9a85a1c05c08d3807d6afb0c0b9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d5668ae2a6e96b465bd1e9a6e2e8b5ff25fd9a85a1c05c08d3807d6afb0c0b9e", kill_on_drop: false }`
[INFO] [stdout] d5668ae2a6e96b465bd1e9a6e2e8b5ff25fd9a85a1c05c08d3807d6afb0c0b9e
